Q: ÉfÅ[É^ÇÉGÉìÉRÅ[ÉhǵǃÉtÉ@ÉCÉãÇ…èëÇ´èoÇ∑ÉÄÅ[ÉrÅ[ÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉgÇ≈çÏãΔǵǃǢNjÇ∑ÅBDZÇÃèàóùÇ…ÇÕè≠ÅXéûä‘ǙǩǩÇÈÇÃÇ≈ÅAÉvÉçÉOÉåÉXÉvÉçÉVÅ[ÉWÉÉÇÉTÉ|Å[ÉgǵÇΩÇ¢ÇΔévǢNjÇ∑ÅBMovieProgressProc DžǬǢǃÇÃãLèqÇéQèΔǵNjǵÇΩÇ™ÅAConvertMovieToFile Ç‚ PutMovieIntoTypedHandle ÇΔǢǡÇΩä÷êîÇìKópǵǃǢÇÈÇæÇØÇÃÇÊǧDžå©Ç¶Ç‹Ç∑ÅBÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉgÇ≈ ProgressProc ÇÉTÉ|Å[ÉgÇ∑ÇÈï˚ñ@ÇÕdžÇËÇ‹Ç∑Ç©ÅH
A: ÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉgÇ≈ÉvÉçÉOÉåÉXÉvÉçÉVÅ[ÉWÉÉÇÉTÉ|Å[ÉgÇ∑ÇÈDZÇΔÇÕÅAÇΔǃLJä»íPÇ≈Ç∑ÅB
DZÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÅAÉäÉXÉg 1 Ç…é¶Ç∑ÉvÉçÉgÉ^ÉCÉvÇΔìØÇ∂ MovieProgressProc ÇíÒãüǵǃǢNjÇ∑ÅBDZÇÍÇÕÅAÉRÉìÉ|Å[ÉlÉìÉgÇ©ÇÁåƒÇ—èoÇ∑ÉÜÅ[ÉUä÷êîÇ≈Ç∑ÅB
OSErr MyMovieProgressProc(Movie theMovie,
short message,
short whatOperation,
Fixed percentDone,
long refcon); |
ÉäÉXÉg 1. ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈íËã`Ç≥ÇÍÇÈ MovieProgressProc ÇÃÉvÉçÉgÉ^ÉCÉv |
SetProgressProc ÉZÉåÉNÉ^ÇÉTÉ|Å[ÉgǵǃÅAÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉgÇ… SetProgressProc ä÷êîÇëgÇ›çûÇfiïKóvǙdžÇËÇ‹Ç∑ÅBDZÇÍÇ…ÇÊÇËÅAMovieExportSetProgressProc API Ç≈ÉRÉìÉ|Å[ÉlÉìÉgÇåƒÇ—èoÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
ComponentCall (SetProgressProc) |
ÉäÉXÉg 2. SetProgressProc ÉZÉåÉNÉ^ÇÃÉTÉ|Å[Ég |
QuickTime ÇÕéüÇ…ÅAProgressProc (MovieProgressUPP ) ÇΔ refcon ÇégǡǃÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉgÇåƒÇ—èoǵNjÇ∑ÅBå„Ç≈égǶÇÈÇÊǧDžÅADZÇà MovieProgressUPP ÇΔ refcon ÇÉRÉìÉ|Å[ÉlÉìÉgÇà globals Ç…ï€ë∂ǵNjÇ∑ÅB
pascal ComponentResult MyExport_SetProgressProc(
myExportGlobals glob,
MovieProgressUPP proc,
long refcon)
{
if ((NULL == proc) || (-1 == proc)) return paramErr;
glob->progressProc = proc;
glob->progressProcRefCon = refCon;
return noErr;
} |
ÉäÉXÉg 3. ÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉg SetProgressProc ÇÃé¿ëï |
ÉGÉNÉXÉ|Å[ÉgíÜÇ…ÅiÉRÉìÉ|Å[ÉlÉìÉgǙDZÇÃèàóùÇé¿çsǵǃǢÇÈÇΔÇ´Ç…ÅjÅAInvokeMovieProgressUPP ÇégópǵǃÉvÉçÉOÉåÉXÉvÉçÉVÅ[ÉWÉÉÇåƒÇ—èoǵÅAêiíªÇé¶Ç∑ìKêÿÇ»ÉÅÉbÉZÅ[ÉWÇΔÅAç≈êVÇÃÉpÅ[ÉZÉìÉeÅ[ÉWÇÃílÇ™ï\é¶Ç≥ÇÍÇÈDZÇΔÇämîFǵNjÇ∑ÅB
message ÉpÉâÉÅÅ[É^ÇÕÅAéüÇÃÇ¢Ç∏ÇÍÇ©ÇÃílÇ…ê›íËÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
movieProgressOpen Å|ÉGÉNÉXÉ|Å[É^Ç™í∑Ç¢èàóùÇäJénǵǃǢNjÇ∑ÅBDZÇÍÇ™èÌÇ…ïKÇ∏ç≈èâÇÃÉÅÉbÉZÅ[ÉWÇ…Ç»ÇËÇ‹Ç∑ÅB
movieProgressUpdatePercent Å|èàóùÇÃëäëŒìIÇ»äÆóπìxçáÅB
movieProgressClose Å|ÉGÉNÉXÉ|Å[ÉgèàóùÇ™äÆóπǵNjǵÇΩÅBDZÇÍÇ™ïKÇ∏ç≈å„ÇÃÉÅÉbÉZÅ[ÉWÇ…Ç»ÇËÇ‹Ç∑ÅB
whatOperation ÉpÉâÉÅÅ[É^ÇÕÅAÉGÉNÉXÉ|Å[ÉgèàóùÇîΩâfÇ∑ÇÈÇÊǧDžê›íËÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
progressOpExportMovie Å|ÉGÉNÉXÉ|Å[ÉgèàóùÅB
InvokeMovieProgressUPP(
NULL, // ÉÄÅ[ÉrÅ[
movieProgress..., // movieProgressOpenÅA
// movieProgressUpdatePercentÅA
// Ç‹ÇΩÇÕ movieProgressClose
progressOpExportMovie, // ÉGÉNÉXÉ|Å[Ég
myPercentDone, // å≈íËíl 1.0 ÇÕÅA100% èàóùäÆóπ
store->progressProcRefCon,
glob->progressProc); |
ÉäÉXÉg 4. ÉGÉNÉXÉ|Å[ÉgÉRÉìÉ|Å[ÉlÉìÉgÇ©ÇÁÇà MovieProgressProc åƒÇ—èoǵ |
ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉfÉxÉçÉbÉpÇÕÅA-1 ÇÃÅuDefault Progress ProcÅvílÇ MovieExportSetProgressProc Ç≈égópÇ≈ǴǻǢDZÇΔÇ…íçà”Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBDZÇà API Ç…ÇÕÅAä÷êîÇê≥ǵÇ≠åƒÇ—ñflÇ∑DZÇΔÇ™ïKóvÇ≈Ç∑ÅB
éQçlï∂å£ÅF
[2003 îN 1 åé 31 ì˙]
|